草庐IT

javascript oop、instanceof 和基类

全部标签

java - 从基类继承的接口(interface)是否应该在子类中显式实现?

我的问题是,如果通过扩展已经实现它的类隐式实现的接口(interface)应该由该类显式实现,如果该类想要宣传它履行该接口(interface)的契约这一事实。例如,如果你想写一个类,它满足接口(interface)java.util.List的约定。您实现它,扩展类java.util.AbstractList,它已经实现了接口(interface)List。您是否明确声明您实现了List?publicclassMyListextendsAbstractListimplementsList还是使用隐式方式来节省输入?publicclassMyListextendsAbstractLis

java - 你能创建一个不以 Object 作为其基类的类结构吗

据我所知:Java中的每个类都继承了对象类的方法,而不需要指定这样做,这使得这个类如此独特和有趣。因此我想知道,在JVM内部,这个“规则”是在哪里指定的?是否可以以某种方式操纵此类,例如添加或删除方法或变量?是否可以独立于Object类创建并行的层次结构? 最佳答案 Object类(class)本身确实很特别。如果你看一下它在rt.jar中的实现在你的jre文件夹中,你会注意到它的大部分方法只是带有native的声明。修饰符。packagejava.lang;publicclassObject{privatestaticnative

Java .equals() instanceof 子类?为什么不调用父类(super class) equals 而不是将其设为最终类?

它在Object的.equals(Object)javadoc中说明:Itissymmetric:foranynon-nullreferencevaluesxandy,x.equals(y)shouldreturntrueifandonlyify.equals(x)returnstrue.在示例代码中几乎所有地方我都看到重写的.equals(Object)方法,它使用instanceof作为第一个测试之一,例如这里:Whatissues/pitfallsmustbeconsideredwhenoverridingequalsandhashCode?publicclassPerson{p

【C++入门到精通】C++入门 —— 继承(基类、派生类和多态性)

阅读导航前言一、继承的概念及定义1.继承的概念2.继承的定义⭕定义格式⭕继承关系和访问限定符⭕继承基类成员访问方式的变化二、基类和派生类对象赋值转换三、继承中的作用域四、派生类的默认成员函数五、继承与友元六、继承与静态成员七、复杂的菱形继承及菱形虚拟继承⭕单继承⭕多继承⭕菱形继承1.命名冲突问题2.二义性问题3.虚继承(virtual)八、继承的总结和反思继承和组合九、笔试面试题温馨提示前言前面我们讲了C语言的基础知识,也了解了一些数据结构,并且讲了有关C++的命名空间的一些知识点以及关于C++的缺省参数、函数重载,引用和内联函数也认识了什么是类和对象以及怎么去new一个‘对象’,也了解了C+

java - instanceof 的可接受使用

这个问题在这里已经有了答案:Isthisanacceptableuseofinstanceof?(2个答案)关闭7年前。我是Java的新手,正在为设计问题而苦苦挣扎。我知道使用instanceof可能表示存在设计缺陷,并且我理解通常给出的Animal/Dog/Cat类作为示例,替换bark()和meow()与makenoise()等我的问题是,如果我需要根据子类的类型调用没有相应方法的方法,什么是合理的设计?例如,如果我想调用一个新方法biteleash()如果类是Dog但如果是Cat则什么也不做>?我确实考虑过在Animal中使用biteleash()什么都不做,并在Dog中覆盖它,

java - 如何从基类实例中找出子类?

有没有办法从基类实例中找出派生类的名称?例如:classA{....}classBextendsA{...}classcextendsA{...}现在如果一个方法返回一个A的对象,我能找出它是B还是C类型吗? 最佳答案 使用instanceof或Class#getClass()Areturned=getA();if(returnedinstanceofB){..}elseif(returnedinstanceofC){..}getClass()将返回以下任一个:A.class、B.class、C.class在if子句中你需要向下转型

java - instanceof的对立面

这个问题在这里已经有了答案:Bestwayto"negate"aninstanceof(9个回答)关闭去年。在java中是否可以得到instanceof的反义词?我试过这样的代码:if(example!instanceofblarg)....但它不会让我把!任何地方都没有错误,请帮助。

java - Hamcrest:如何为匹配器进行 instanceOf 和转换?

问题假设进行以下简单测试:@Testpublicvoidtest()throwsException{Objectvalue=1;assertThat(value,greaterThan(0));}测试不会编译,因为“greaterThan”只能应用于类型Comparable的实例。但我想断言value是一个大于零的整数。我如何使用Hamcrest表达这一点?到目前为止我尝试了什么:简单的解决方案是通过像这样转换匹配器来简单地删除泛型:assertThat(value,(Matcher)greaterThan(0));可能,但会生成编译器警告并感觉不对。一个冗长的选择是:@Testpub

java - 为什么 "array instanceof Iterable"不能用 Java 编译?

Object[]array=newObject[]{};System.out.println((arrayinstanceofSerializable));//passedSystem.out.println((arrayinstanceofCloneable));//passed此代码编译并运行。输出是:truetrue但是,这段代码无法编译:System.out.println((arrayinstanceofIterable));//notpassedEclipse编译器报告:IncompatibleconditionaloperandtypesObject[]andIterab

Java - 基类和子类中的 equals 方法

我有一个简单的基类,后来由许多单独的类扩展,这些类可能会引入新的字段,但不一定。我在基类中定义了一个equals方法,但也为一些子类覆盖了它。可以在基类/子类中混合定义吗?在我的例子中,这是为了避免检查相同字段的代码重复。 最佳答案 看看"Implementingequals()ToAllowMixed-TypeComparison"来自AngelikaLanger。以下是一些问题的简要说明和可能的解决方案:平等契约说(除其他外):Itissymmetric:foranynon-nullreferencevaluesxandy,x.